package com.weixiaodong.javabasic.Java中的枚举类型.后台用户角色管理.多值枚举;

@SuppressWarnings("all")
public enum UserRole {
    ROLE_ROOT_ADMIN("系统管理员", 0000),

    ROLE_ORDER_ADMIN("订单管理员", 1000),

    ROLE_NORMAL("普通用户", 3000),
    ;


    // 自定义枚举属性

    private final String roleName;

    private final Integer roleCode;

    // 这里和类中不同的是，必须使用this， 而且这个构造方法也是必须的，否则上述的枚举定义会出现编译异常
    UserRole(String roleName, Integer roleCode) {
        this.roleName = roleName;
        this.roleCode = roleCode;
    }

    // 自定义枚举的相关方法
    public String getRoleName() {
        return this.roleName;
    }

    public Integer getRoleCode() {
        return this.roleCode;
    }

    public static Integer getRoleCodeByRoleName( String roleName ) {
        for( UserRole enums : UserRole.values() ) {
            if( enums.getRoleName().equals( roleName ) ) {
                return enums.getRoleCode();
            }
        }
        return null;
    }
}
